package view;

import controller.Controleur;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import javax.swing.*;
import model.Model;

/**
 * Panel de chat ecrit
 * @author Lefevre, Thoue
 */
public class ChatPanel extends JPanel{
    private Controleur controleur;
    private JTextArea historiqueText;
    private JTextField saisie;
    private JButton boutonEnvoie;
    
    /**
     * Constructeur
     * @param controleur controleur de l'application
     */
    public ChatPanel(Controleur controleur) {
        this.controleur = controleur;
        setOpaque(false);
        setPreferredSize(new Dimension(350,350));
        setLayout(new BorderLayout());
        this.setBorder(BorderFactory.createTitledBorder("Chat"));
        historiqueText = new JTextArea(15,25);
        historiqueText.setEditable(false);

        JScrollPane scrollPane = new JScrollPane(historiqueText );

        saisie = new JTextField(16);
        boutonEnvoie = new JButton("Envoyer");
        boutonEnvoie.addActionListener(new EnvoyerMessageListener(this));
        
        this.add(scrollPane,BorderLayout.CENTER);
        JPanel panelSaisie = new JPanel();
        panelSaisie.setOpaque(false);
        panelSaisie.add(saisie);
        panelSaisie.add(boutonEnvoie);
        
        this.add(panelSaisie,BorderLayout.SOUTH);
    }
    /**
     * Getter controleur
     * @return le controleur de l'application
     */
    public Controleur getControleur() {    return controleur;  }
    /**
     * Getter du champs de saisie
     * @return champs de saisie
     */
    public JTextField getSaisie() {    return saisie;   }
    /**
     * Methode de mise a jour 
     * @param eaudio modele a jour de l'application
     */
    public void update(Model eaudio){
        if(eaudio.getUserChatActif()!=null){
            this.setBorder(BorderFactory.createTitledBorder(BorderFactory.createLineBorder(Color.black),"Chat : "+eaudio.getUserChatActif().getNom()+" "+eaudio.getUserChatActif().getPrenom()));
            historiqueText.setText(eaudio.getHistoriqueChatActif());
        }
    }
}
